package org.example.singletonPattern;
/**
 * 静态内部类实现单例
 * 优点：线程安全，延迟加载，实现简单
 * 推荐使用的方式
 *
 * ✅ 按需加载的轻量级服务（如日志记录器、工具类）
 * ✅ 需平衡性能与安全的场景（无锁设计）
 * ✅ 替代DCL的简洁方案（避免volatile复杂度）
 *
 */
public class InnerClassSingleton {
    private InnerClassSingleton() {
        System.out.println("静态内部类单例实例被创建");
    }

    // 静态内部类，在第一次使用时才会加载
    private static class SingletonHolder {
        private static final InnerClassSingleton INSTANCE = new InnerClassSingleton();
    }

    public static InnerClassSingleton getInstance() {
        return SingletonHolder.INSTANCE;
    }

    public void showMessage() {
        System.out.println("这是静态内部类单例的方法调用");
    }
}